Der UNION-Operator wird verwendet, um die Ergebnismenge von zwei oder mehr SELECT-Anweisungen zu kombinieren.
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2
Der UNION-Operator wählt standardmäßig nur unterschiedliche Werte aus. Um doppelte Werte zuzulassen, verwenden Sie UNION ALL:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2
In diesem Tutorial verwenden wir die berühmte Beispieldatenbank „Northwind“.
Nachfolgend finden Sie ein Beispiel aus der Tabelle „Customers“ („Kunden“):
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Und das Beispiel aus der Tabelle „Suppliers“ („Suppliers“):
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country | Phone |
---|---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | Londona | EC1 4SD | UK | (171) 555-2222 |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA | (100) 555-4822 |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA | (313) 555-5735 |
4 | Tokyo Traders | Yoshi Nagase | 9-8 Sekimai Musashino-shi | Tokyo | 100 | Japan | (03) 3555-5011 |
5 | Cooperativa de Quesos 'Las Cabras' | Antonio del Valle Saavedra | Calle del Rosal 4 | Oviedo | 33007 | Spain | (98) 598 76 54 |
Die folgende SQL-Anweisung wählt Städte (nur unterschiedliche Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:
Run SQLSELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City
Die folgende SQL-Anweisung wählt Städte (auch doppelte Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:
Run SQLSELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City
Die folgende SQL-Anweisung wählt deutsche Städte (nur unterschiedliche Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:
Run SQLSELECT City, Country FROM Customers
WHERE Country = 'Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country = 'Germany'
ORDER BY City
Die folgende SQL-Anweisung wählt deutsche Städte (auch doppelte Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:
Run SQLSELECT City, Country FROM Customers
WHERE Country = 'Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country = 'Germany'
ORDER BY City
Die folgende SQL-Anweisung listet alle Kunden und Lieferanten auf:
Run SQLSELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers
Beachten Sie, dass es sich bei „AS Type“ oben um einen Alias handelt. SQL-Aliase werden verwendet, um einer Tabelle oder Spalte einen temporären Namen zu geben. Der Alias existiert nur für die Dauer der Anfrage. Deshalb haben wir hier eine temporäre Spalte namens „Type“ erstellt, die angibt, ob der Kontakt ein „Kunde“ oder ein „Anbieter“ ist.